class Person:
    def __init__(self, name, age):
        # 公有属性
        self.name = name
        # 私有属性
        self.__age = age

    def get_age(self):
        return self.__age

    def set_age(self, age):
        if 1 < age < 200:
            self.__age = age
        else:
            print('输入的年龄不合法')

    def __fn(self):
        print('fn')

    def run_fn(self):
        self.__fn()


# 类的外部
p1 = Person('hello', 18)
# 通过这种手段可以访问到私有成员
# print(p1._Person__age)

print(p1.name)
print(p1.get_age())
p1.set_age(-1)
print(p1.get_age())


# p1.__fn()     # 私有方法类外部调用不到


# 私有成员不能在类的外部访问
# print(p1.__age)


# 在派生类中访问
class Teacher(Person):
    pass

# t1 = Teacher('python', 12)
# print(t1.name)
# print(t1.__age)
